1. Field of the Invention
The present invention relates in general to the method used to search for and correlate with code spread signals, and in particular to a method and apparatus for reducing the calculation complexity for code acquisition and correlation in spread spectrum signals.
2. Description of the Related Art
A family of spread spectrum signals exist which are termed Code Division Multiple Access (CDMA) signals. These signals are fundamentally formed by starting with a Continuous Wave (CW) signal, and inverting the phase of the CW signal, also called a “carrier” or “carrier wave” with a pseudo random (PN) code at a specific rate for a specific length of time. The PN code is a digital code consisting of ones (1s) and zeros (0s), and the phase of the carrier is not inverted if the PN code is a “0” and is inverted if the PN code is a “1.” This modulation or mixing of the PN code with the carrier wave forms a signal that has a much wider bandwidth than the original carrier, and is called a “spread signal” or “spread spectrum signal.”
To receive and decode such a spread spectrum signal, the spread spectrum receiver produces a duplicate PN code that is used to invert the incoming spread spectrum signal as done in the original modulation. If the receiver PN code and the transmitted PN code line up, then the carrier wave is reconstructed in the receiver. The process of aligning the PN code generated by the receiver and the PN code that is modulated on the carrier wave is called correlation.
The process of finding where the code should be, in the industry today, is accomplished by generating a PN code at an arbitrary time, multiplying the incoming signal by the code bits (called chips) and looking for power in the result. If no power is found, then the code is shifted by one-half of a chip, and the process is repeated. This repetitive process continues until power is found, which indicates that the PN code generated at the receiver and the PN code used to modulate the carrier wave are aligned (also referred to as being correlated).
Presently, there are no attempts made to reduce the computation required to reduce the number of calculations in this repetitive process. The present approach is to mechanically step through the PN code in two-dimensions, one-half chip at a time by code position and frequency, and look for power in the result.
For example, in the Global Positioning System (GPS) Coarse/Acquisition (C/A) spread spectrum signal system, the GPS signal is formed by generating a carrier and inverting the phase with a pseudo-random signal with a chip rate of 1.023 MHz. The PN code that is generated repeats every 1.023 milliseconds, which means that there are 1023 bits of PN code before the PN code repeats. There are a number of GPS satellites using different PN codes, but transmitting at the same frequency.
If a receiver wants to receive the signal from one of these satellites, the GPS signals are received as a spread spectrum signal, and the signals need to be demodulated or “unspread.” The GPS receiver converts the GPS satellite signal by centering the receiver to as close to 0 Hz as possible using standard radio processes. A local PN code is generated for the satellite of interest, and the received signal is multiplied by the local PN code. If the local PN code is a “1” the signal is not inverted, and if the local PN code is a “0” the code is inverted. Usually the satellite signal is so weak that there is no measurable output signal at this point, so the output signal is integrated to see what kind of power is being measured. If the satellite signal of interest is close enough to 0 Hz that the signal period is much greater than the integration time, a DC offset will be discernable from the integration output, e.g., if the de-spread signal is mixed to being centered at 10 Hz and an integration is appropriately performed for 1 millisecond, the average will not be zero, and the PN code of the signal has been determined and the signal correlated.
If there is no DC offset, or the DC offset is below a predetermined value, the code is shifted one-half chip, and another 1 millisecond integration is performed. Typically this is performed for all 2046 different ½ chip positions of the PN code. After 2046 one-half chip shifts the PN code repeats, so there is no need to continue, since these integrations have already been performed in the first 2046 integrations described above.
If the carrier PN code has still not been located, the center frequency of the receiver is shifted and the PN code search above is repeated. For each frequency, 2046 integrations of 1.023 milliseconds of signal are performed. If the data is sampled at 2 samples per chip, then the integration becomes an accumulation, and the 1 millisecond search means that 2046 accumulations (also known as “adds”) are performed 2046 times. In essence, every data byte is multiplied by a code bit and added to an accumulated value. There is no effort to look for duplicated mathematical efforts during this accumulation/integration process.
It can be seen, then, that there is a need in the art for a method of reducing the number and complexity of operations needed to search and correlate for a CDMA signal.